0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 ITRS
↳5 DuplicateArgsRemoverProof (⇔)
↳6 ITRS
↳7 ITRStoIDPProof (⇔)
↳8 IDP
↳9 UsableRulesProof (⇔)
↳10 IDP
↳11 IDPNonInfProof (⇐)
↳12 AND
↳13 IDP
↳14 IDependencyGraphProof (⇔)
↳15 TRUE
↳16 IDP
↳17 IDependencyGraphProof (⇔)
↳18 IDP
↳19 IDPNonInfProof (⇐)
↳20 AND
↳21 IDP
↳22 IDependencyGraphProof (⇔)
↳23 TRUE
↳24 IDP
↳25 IDependencyGraphProof (⇔)
↳26 TRUE
No human-readable program information known.
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Load783(x1, x2, x3, x4) → Load783(x2, x3, x4)
Load866(x1, x2, x3, x4, x5, x6) → Load866(x3, x4, x5, x6)
Cond_Load866(x1, x2, x3, x4, x5, x6, x7) → Cond_Load866(x1, x4, x5, x6, x7)
Cond_Load783(x1, x2, x3, x4, x5) → Cond_Load783(x1, x3, x4, x5)
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((i88[0] →* i88[1])∧(i95[0] > 0 && i88[0] >= i95[0] →* TRUE)∧(i90[0] →* i90[1])∧(i95[0] →* i95[1]))
(1) -> (2), if ((i95[1] →* i95[2])∧(i90[1] →* i90[2])∧(i95[1] →* i103[2])∧(i88[1] →* i100[2]))
(1) -> (4), if ((i95[1] →* 0)∧(i88[1] →* i100[4])∧(i90[1] →* i90[4])∧(i95[1] →* i95[4]))
(2) -> (3), if ((i100[2] →* i100[3])∧(i90[2] →* i90[3])∧(i103[2] →* i103[3])∧(i95[2] →* i95[3])∧(i103[2] > 0 →* TRUE))
(3) -> (2), if ((i103[3] + -1 →* i103[2])∧(i95[3] →* i95[2])∧(i90[3] →* i90[2])∧(i100[3] + -1 →* i100[2]))
(3) -> (4), if ((i100[3] + -1 →* i100[4])∧(i95[3] →* i95[4])∧(i103[3] + -1 →* 0)∧(i90[3] →* i90[4]))
(4) -> (0), if ((i100[4] →* i88[0])∧(i95[4] →* i95[0])∧(i90[4] + 1 →* i90[0]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((i88[0] →* i88[1])∧(i95[0] > 0 && i88[0] >= i95[0] →* TRUE)∧(i90[0] →* i90[1])∧(i95[0] →* i95[1]))
(1) -> (2), if ((i95[1] →* i95[2])∧(i90[1] →* i90[2])∧(i95[1] →* i103[2])∧(i88[1] →* i100[2]))
(1) -> (4), if ((i95[1] →* 0)∧(i88[1] →* i100[4])∧(i90[1] →* i90[4])∧(i95[1] →* i95[4]))
(2) -> (3), if ((i100[2] →* i100[3])∧(i90[2] →* i90[3])∧(i103[2] →* i103[3])∧(i95[2] →* i95[3])∧(i103[2] > 0 →* TRUE))
(3) -> (2), if ((i103[3] + -1 →* i103[2])∧(i95[3] →* i95[2])∧(i90[3] →* i90[2])∧(i100[3] + -1 →* i100[2]))
(3) -> (4), if ((i100[3] + -1 →* i100[4])∧(i95[3] →* i95[4])∧(i103[3] + -1 →* 0)∧(i90[3] →* i90[4]))
(4) -> (0), if ((i100[4] →* i88[0])∧(i95[4] →* i95[0])∧(i90[4] + 1 →* i90[0]))
(1) (i88[0]=i88[1]∧&&(>(i95[0], 0), >=(i88[0], i95[0]))=TRUE∧i90[0]=i90[1]∧i95[0]=i95[1] ⇒ LOAD783(i88[0], i95[0], i90[0])≥NonInfC∧LOAD783(i88[0], i95[0], i90[0])≥COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])∧(UIncreasing(COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])), ≥))
(2) (>(i95[0], 0)=TRUE∧>=(i88[0], i95[0])=TRUE ⇒ LOAD783(i88[0], i95[0], i90[0])≥NonInfC∧LOAD783(i88[0], i95[0], i90[0])≥COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])∧(UIncreasing(COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])), ≥))
(3) (i95[0] + [-1] ≥ 0∧i88[0] + [-1]i95[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])), ≥)∧[(-1)bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i88[0] ≥ 0∧[(-1)bso_27] + i95[0] ≥ 0)
(4) (i95[0] + [-1] ≥ 0∧i88[0] + [-1]i95[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])), ≥)∧[(-1)bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i88[0] ≥ 0∧[(-1)bso_27] + i95[0] ≥ 0)
(5) (i95[0] + [-1] ≥ 0∧i88[0] + [-1]i95[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])), ≥)∧[(-1)bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i88[0] ≥ 0∧[(-1)bso_27] + i95[0] ≥ 0)
(6) (i95[0] + [-1] ≥ 0∧i88[0] + [-1]i95[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])), ≥)∧0 = 0∧[(-1)bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i88[0] ≥ 0∧0 = 0∧[(-1)bso_27] + i95[0] ≥ 0)
(7) (i95[0] ≥ 0∧i88[0] + [-1] + [-1]i95[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])), ≥)∧0 = 0∧[(-1)bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i88[0] ≥ 0∧0 = 0∧[1 + (-1)bso_27] + i95[0] ≥ 0)
(8) (i95[0] ≥ 0∧i88[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])), ≥)∧0 = 0∧[bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i95[0] + [(2)bni_26]i88[0] ≥ 0∧0 = 0∧[1 + (-1)bso_27] + i95[0] ≥ 0)
(9) (i95[1]=i95[2]∧i90[1]=i90[2]∧i95[1]=i103[2]∧i88[1]=i100[2] ⇒ COND_LOAD783(TRUE, i88[1], i95[1], i90[1])≥NonInfC∧COND_LOAD783(TRUE, i88[1], i95[1], i90[1])≥LOAD866(i90[1], i95[1], i88[1], i95[1])∧(UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥))
(10) (COND_LOAD783(TRUE, i88[1], i95[1], i90[1])≥NonInfC∧COND_LOAD783(TRUE, i88[1], i95[1], i90[1])≥LOAD866(i90[1], i95[1], i88[1], i95[1])∧(UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥))
(11) ((UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥)∧[(-1)bso_29] ≥ 0)
(12) ((UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥)∧[(-1)bso_29] ≥ 0)
(13) ((UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥)∧[(-1)bso_29] ≥ 0)
(14) ((UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_29] ≥ 0)
(15) (i95[1]=0∧i88[1]=i100[4]∧i90[1]=i90[4]∧i95[1]=i95[4] ⇒ COND_LOAD783(TRUE, i88[1], i95[1], i90[1])≥NonInfC∧COND_LOAD783(TRUE, i88[1], i95[1], i90[1])≥LOAD866(i90[1], i95[1], i88[1], i95[1])∧(UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥))
(16) (COND_LOAD783(TRUE, i88[1], 0, i90[1])≥NonInfC∧COND_LOAD783(TRUE, i88[1], 0, i90[1])≥LOAD866(i90[1], 0, i88[1], 0)∧(UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥))
(17) ((UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥)∧[(-1)bso_29] ≥ 0)
(18) ((UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥)∧[(-1)bso_29] ≥ 0)
(19) ((UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥)∧[(-1)bso_29] ≥ 0)
(20) ((UIncreasing(LOAD866(i90[1], i95[1], i88[1], i95[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_29] ≥ 0)
(21) (i100[2]=i100[3]∧i90[2]=i90[3]∧i103[2]=i103[3]∧i95[2]=i95[3]∧>(i103[2], 0)=TRUE ⇒ LOAD866(i90[2], i95[2], i100[2], i103[2])≥NonInfC∧LOAD866(i90[2], i95[2], i100[2], i103[2])≥COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])∧(UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥))
(22) (>(i103[2], 0)=TRUE ⇒ LOAD866(i90[2], i95[2], i100[2], i103[2])≥NonInfC∧LOAD866(i90[2], i95[2], i100[2], i103[2])≥COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])∧(UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥))
(23) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥)∧[(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i103[2] + [(2)bni_30]i100[2] ≥ 0∧[(-1)bso_31] ≥ 0)
(24) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥)∧[(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i103[2] + [(2)bni_30]i100[2] ≥ 0∧[(-1)bso_31] ≥ 0)
(25) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥)∧[(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i103[2] + [(2)bni_30]i100[2] ≥ 0∧[(-1)bso_31] ≥ 0)
(26) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥)∧[(2)bni_30] = 0∧0 = 0∧0 = 0∧[(-1)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i103[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_31] ≥ 0)
(27) (i103[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥)∧[(2)bni_30] = 0∧0 = 0∧0 = 0∧[(-2)bni_30 + (-1)Bound*bni_30] + [(-1)bni_30]i103[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_31] ≥ 0)
(28) (i100[2]=i100[3]∧i90[2]=i90[3]∧i103[2]=i103[3]∧i95[2]=i95[3]∧>(i103[2], 0)=TRUE∧+(i103[3], -1)=i103[2]1∧i95[3]=i95[2]1∧i90[3]=i90[2]1∧+(i100[3], -1)=i100[2]1 ⇒ COND_LOAD866(TRUE, i90[3], i95[3], i100[3], i103[3])≥NonInfC∧COND_LOAD866(TRUE, i90[3], i95[3], i100[3], i103[3])≥LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))∧(UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥))
(29) (>(i103[2], 0)=TRUE ⇒ COND_LOAD866(TRUE, i90[2], i95[2], i100[2], i103[2])≥NonInfC∧COND_LOAD866(TRUE, i90[2], i95[2], i100[2], i103[2])≥LOAD866(i90[2], i95[2], +(i100[2], -1), +(i103[2], -1))∧(UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥))
(30) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i103[2] + [(2)bni_32]i100[2] ≥ 0∧[1 + (-1)bso_33] ≥ 0)
(31) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i103[2] + [(2)bni_32]i100[2] ≥ 0∧[1 + (-1)bso_33] ≥ 0)
(32) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i103[2] + [(2)bni_32]i100[2] ≥ 0∧[1 + (-1)bso_33] ≥ 0)
(33) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(2)bni_32] = 0∧0 = 0∧0 = 0∧[(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i103[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_33] ≥ 0)
(34) (i103[2] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(2)bni_32] = 0∧0 = 0∧0 = 0∧[(-2)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i103[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_33] ≥ 0)
(35) (i100[2]=i100[3]∧i90[2]=i90[3]∧i103[2]=i103[3]∧i95[2]=i95[3]∧>(i103[2], 0)=TRUE∧+(i100[3], -1)=i100[4]∧i95[3]=i95[4]∧+(i103[3], -1)=0∧i90[3]=i90[4] ⇒ COND_LOAD866(TRUE, i90[3], i95[3], i100[3], i103[3])≥NonInfC∧COND_LOAD866(TRUE, i90[3], i95[3], i100[3], i103[3])≥LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))∧(UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥))
(36) (>(i103[2], 0)=TRUE∧+(i103[2], -1)=0 ⇒ COND_LOAD866(TRUE, i90[2], i95[2], i100[2], i103[2])≥NonInfC∧COND_LOAD866(TRUE, i90[2], i95[2], i100[2], i103[2])≥LOAD866(i90[2], i95[2], +(i100[2], -1), +(i103[2], -1))∧(UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥))
(37) (i103[2] + [-1] ≥ 0∧i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i103[2] + [(2)bni_32]i100[2] ≥ 0∧[1 + (-1)bso_33] ≥ 0)
(38) (i103[2] + [-1] ≥ 0∧i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i103[2] + [(2)bni_32]i100[2] ≥ 0∧[1 + (-1)bso_33] ≥ 0)
(39) (i103[2] + [-1] ≥ 0∧i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i103[2] + [(2)bni_32]i100[2] ≥ 0∧[1 + (-1)bso_33] ≥ 0)
(40) (i103[2] + [-1] ≥ 0∧i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(2)bni_32] = 0∧0 = 0∧0 = 0∧[(-1)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i103[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_33] ≥ 0)
(41) (i103[2] ≥ 0∧i103[2] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(2)bni_32] = 0∧0 = 0∧0 = 0∧[(-2)bni_32 + (-1)Bound*bni_32] + [(-1)bni_32]i103[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_33] ≥ 0)
(42) (i95[1]=0∧i88[1]=i100[4]∧i90[1]=i90[4]∧i95[1]=i95[4]∧i100[4]=i88[0]∧i95[4]=i95[0]∧+(i90[4], 1)=i90[0] ⇒ LOAD866(i90[4], i95[4], i100[4], 0)≥NonInfC∧LOAD866(i90[4], i95[4], i100[4], 0)≥LOAD783(i100[4], i95[4], +(i90[4], 1))∧(UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥))
(43) (LOAD866(i90[1], 0, i88[1], 0)≥NonInfC∧LOAD866(i90[1], 0, i88[1], 0)≥LOAD783(i88[1], 0, +(i90[1], 1))∧(UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥))
(44) ((UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥)∧[(-1)bso_35] ≥ 0)
(45) ((UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥)∧[(-1)bso_35] ≥ 0)
(46) ((UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥)∧[(-1)bso_35] ≥ 0)
(47) ((UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥)∧0 = 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(48) (+(i100[3], -1)=i100[4]∧i95[3]=i95[4]∧+(i103[3], -1)=0∧i90[3]=i90[4]∧i100[4]=i88[0]∧i95[4]=i95[0]∧+(i90[4], 1)=i90[0] ⇒ LOAD866(i90[4], i95[4], i100[4], 0)≥NonInfC∧LOAD866(i90[4], i95[4], i100[4], 0)≥LOAD783(i100[4], i95[4], +(i90[4], 1))∧(UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥))
(49) (+(i103[3], -1)=0 ⇒ LOAD866(i90[3], i95[3], +(i100[3], -1), 0)≥NonInfC∧LOAD866(i90[3], i95[3], +(i100[3], -1), 0)≥LOAD783(+(i100[3], -1), i95[3], +(i90[3], 1))∧(UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥))
(50) (i103[3] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥)∧0 ≥ 0∧[(-1)bso_35] ≥ 0)
(51) (i103[3] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥)∧0 ≥ 0∧[(-1)bso_35] ≥ 0)
(52) (i103[3] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥)∧0 ≥ 0∧[(-1)bso_35] ≥ 0)
(53) (i103[3] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD783(i100[4], i95[4], +(i90[4], 1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_35] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = [3]
POL(LOAD783(x1, x2, x3)) = [-1] + [2]x1
POL(COND_LOAD783(x1, x2, x3, x4)) = [-1] + [-1]x3 + [2]x2
POL(&&(x1, x2)) = 0
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(>=(x1, x2)) = [-1]
POL(LOAD866(x1, x2, x3, x4)) = [-1] + [-1]x4 + [2]x3
POL(COND_LOAD866(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + [2]x4
POL(+(x1, x2)) = x1 + x2
POL(-1) = [-1]
POL(1) = [1]
LOAD783(i88[0], i95[0], i90[0]) → COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])
COND_LOAD866(TRUE, i90[3], i95[3], i100[3], i103[3]) → LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))
LOAD783(i88[0], i95[0], i90[0]) → COND_LOAD783(&&(>(i95[0], 0), >=(i88[0], i95[0])), i88[0], i95[0], i90[0])
COND_LOAD783(TRUE, i88[1], i95[1], i90[1]) → LOAD866(i90[1], i95[1], i88[1], i95[1])
LOAD866(i90[2], i95[2], i100[2], i103[2]) → COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])
LOAD866(i90[4], i95[4], i100[4], 0) → LOAD783(i100[4], i95[4], +(i90[4], 1))
FALSE1 → &&(TRUE, FALSE)1
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
(1) -> (2), if ((i95[1] →* i95[2])∧(i90[1] →* i90[2])∧(i95[1] →* i103[2])∧(i88[1] →* i100[2]))
(1) -> (4), if ((i95[1] →* 0)∧(i88[1] →* i100[4])∧(i90[1] →* i90[4])∧(i95[1] →* i95[4]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
(1) -> (2), if ((i95[1] →* i95[2])∧(i90[1] →* i90[2])∧(i95[1] →* i103[2])∧(i88[1] →* i100[2]))
(3) -> (2), if ((i103[3] + -1 →* i103[2])∧(i95[3] →* i95[2])∧(i90[3] →* i90[2])∧(i100[3] + -1 →* i100[2]))
(2) -> (3), if ((i100[2] →* i100[3])∧(i90[2] →* i90[3])∧(i103[2] →* i103[3])∧(i95[2] →* i95[3])∧(i103[2] > 0 →* TRUE))
(1) -> (4), if ((i95[1] →* 0)∧(i88[1] →* i100[4])∧(i90[1] →* i90[4])∧(i95[1] →* i95[4]))
(3) -> (4), if ((i100[3] + -1 →* i100[4])∧(i95[3] →* i95[4])∧(i103[3] + -1 →* 0)∧(i90[3] →* i90[4]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
(3) -> (2), if ((i103[3] + -1 →* i103[2])∧(i95[3] →* i95[2])∧(i90[3] →* i90[2])∧(i100[3] + -1 →* i100[2]))
(2) -> (3), if ((i100[2] →* i100[3])∧(i90[2] →* i90[3])∧(i103[2] →* i103[3])∧(i95[2] →* i95[3])∧(i103[2] > 0 →* TRUE))
(1) (i100[2]=i100[3]∧i90[2]=i90[3]∧i103[2]=i103[3]∧i95[2]=i95[3]∧>(i103[2], 0)=TRUE∧+(i103[3], -1)=i103[2]1∧i95[3]=i95[2]1∧i90[3]=i90[2]1∧+(i100[3], -1)=i100[2]1 ⇒ COND_LOAD866(TRUE, i90[3], i95[3], i100[3], i103[3])≥NonInfC∧COND_LOAD866(TRUE, i90[3], i95[3], i100[3], i103[3])≥LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))∧(UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥))
(2) (>(i103[2], 0)=TRUE ⇒ COND_LOAD866(TRUE, i90[2], i95[2], i100[2], i103[2])≥NonInfC∧COND_LOAD866(TRUE, i90[2], i95[2], i100[2], i103[2])≥LOAD866(i90[2], i95[2], +(i100[2], -1), +(i103[2], -1))∧(UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥))
(3) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(2)bni_15 + (-1)Bound*bni_15] + [bni_15]i103[2] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(4) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(2)bni_15 + (-1)Bound*bni_15] + [bni_15]i103[2] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(5) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧[(2)bni_15 + (-1)Bound*bni_15] + [bni_15]i103[2] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(6) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_15 + (-1)Bound*bni_15] + [bni_15]i103[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_16] ≥ 0)
(7) (i103[2] ≥ 0 ⇒ (UIncreasing(LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(3)bni_15 + (-1)Bound*bni_15] + [bni_15]i103[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_16] ≥ 0)
(8) (i100[2]=i100[3]∧i90[2]=i90[3]∧i103[2]=i103[3]∧i95[2]=i95[3]∧>(i103[2], 0)=TRUE ⇒ LOAD866(i90[2], i95[2], i100[2], i103[2])≥NonInfC∧LOAD866(i90[2], i95[2], i100[2], i103[2])≥COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])∧(UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥))
(9) (>(i103[2], 0)=TRUE ⇒ LOAD866(i90[2], i95[2], i100[2], i103[2])≥NonInfC∧LOAD866(i90[2], i95[2], i100[2], i103[2])≥COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])∧(UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥))
(10) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥)∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i103[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(11) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥)∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i103[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(12) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥)∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i103[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(13) (i103[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i103[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)
(14) (i103[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(3)bni_17 + (-1)Bound*bni_17] + [bni_17]i103[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)
POL(TRUE) = [2]
POL(FALSE) = 0
POL(COND_LOAD866(x1, x2, x3, x4, x5)) = [2] + x5
POL(LOAD866(x1, x2, x3, x4)) = [2] + x4
POL(+(x1, x2)) = x1 + x2
POL(-1) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
COND_LOAD866(TRUE, i90[3], i95[3], i100[3], i103[3]) → LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))
COND_LOAD866(TRUE, i90[3], i95[3], i100[3], i103[3]) → LOAD866(i90[3], i95[3], +(i100[3], -1), +(i103[3], -1))
LOAD866(i90[2], i95[2], i100[2], i103[2]) → COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])
LOAD866(i90[2], i95[2], i100[2], i103[2]) → COND_LOAD866(>(i103[2], 0), i90[2], i95[2], i100[2], i103[2])
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |